package com.example4;

//- 声明一个匿名内部类继承Thread类，重写run方法，
// 实现打印[1,100]之间的偶数，要求每隔1秒打印1个偶数。
//- 声明一个匿名内部类继承Thread类，重写run方法，实现打印[1,100]之间的奇数，
// - 当打印到5时，让奇数线程暂停一下，再继续。
// - 当打印到5时，让奇数线程停下来，让偶数线程执行完再打印。
public class TestThreadStateChange1 {
    public static void main(String[] args) {
        Thread te = new Thread() {
            @Override
            public void run() {
                for (int i = 2; i <= 100; i += 2) {
                    System.out.println("偶数线程" + i);
//                    面试题：wait和sleep的区别
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        throw new RuntimeException(e);
                    }

                }
            }
        };
        te.start();

        Thread to = new Thread() {
            @Override
            public void run() {
                for (int i = 1; i <= 100; i += 2) {
                    System.out.println("奇数线程：" + i);
                    if (i == 5) {
//                        Thread.yield();
                        try {
//                            等待该线程终止。
                            te.join();
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }

                }
            }
        };
        to.start();
    }
}
